<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>

  <!-- 1、引入依赖 -->
  <script src="https://unpkg.com/react@16/umd/react.development.js" crossorigin></script>
  <script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js" crossorigin></script>
  <script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>

  <div id="app"></div>

  <!-- 2、编写react代码 -->
  <script type="text/babel">

    class App extends React.Component {

      constructor(props){
        super(props)
        this.state = {
          isLogin: false,
          btnText: ''
        }
      }


      // 所有组件必须实现render方法
      render() {
        let { isLogin, btnText } = this.state
        // 一、通过if判断: 逻辑代码非常多的情况
        let welcome = null
        if (isLogin) {
          welcome = <h2>欢迎回来~</h2>
          btnText = '退出'
        }else{
          welcome = <h2>请先登录</h2>
          btnText = '登录'
        }

        // 必须用return返回
        return (
          // {}语法  里面可以是表达式
          <div>
            {/*
              条件渲染：界面的内容会根据不同的情况显示不同的内容，或者决定是否渲染某部分内容
              vue中，使用v-if  v-show
              react中，所有的条件判和普通的JavaScript代码一致

              1、条件判断语句  ---适合逻辑较多的情况
            */}

            {/*需求： 
            1、isLogin为true时显示欢迎回来~，false时显示请先登录
            2、按钮，isLogin为true时显示退出，false时显示登录
          */}

            {welcome}

            {/*二、、使用三元运算*/}

            {
              isLogin ? <h2>欢迎回来~</h2> : <h2>请先登录</h2>
            }

            <button onClick={() => {this.btnClick()}}>{btnText}</button>
            <button onClick={() => {this.btnClick()}}>{isLogin ? '退出' : '登录'}</button>

            <hr/>

            <h2>{isLogin ? '你好呀' : null}</h2>
            {/* 
            三、逻辑与 &&  前面为真，后面才执行   (一个条件不成立，后面的条件都不会进行判断)
            当isLogin为真时，判断后面的“你好呀”也为真时，会将后面表达式的结果“你好呀”作为整个表达式的值返回
          */}
            {
              isLogin && <h2>'你好呀'</h2> 
            }
            

          </div>
        )
      }

      btnClick(){
        const {isLogin} = this.state
        this.setState({
          isLogin: !isLogin
        })
      }
    }


    ReactDOM.render(<App/>, document.getElementById('app')) 
  </script>
</body>
</html>